package com.hup.minicontroller.server.mvp;

import android.view.SurfaceView;

import com.hup.minicontroller.common.constant.NetConstant.ConnectType;
import com.hup.minicontroller.server.model.AppState;

/**
 * 回调逻辑情况说明:<pre>
 * .情况1: 用户操作View后,不刷新 {@link AppState},锁定ui并通知 {@link IServerHandler},
 *  {@link IServerHandler} 更新服务端并刷新 {@link AppState}后,通知View解除锁定和刷新状态;
 *  如server的启动/停止
 * .情况2: 用户操作View后, 直接刷新 {@link AppState} 并通知 {@link IServerHandler},
 *  {@link IServerHandler} 根据 {@link AppState} 实现业务功能
 *  如[视频配置]被更新
 * .情况3: {@link IServerHandler} 收到client消息后, 实现业务如:发送图像,控制设备,通知View
 * </pre>
 */
public interface IMainView {

    /**
     * 服务端状态已更新
     */
    void onNetServerStateChanged(ConnectType connectType);

    void onControlConfigChanged();

    void onClientChanged();

    /**
     * 切换录屏SurfaceView状态
     *
     * @param startReceive true-开始录屏,false-停止录屏
     */
    SurfaceView switchSurfaceViewOfScreenCapture(boolean startReceive);

}
